package cn.edu.sgu.www.mhxysy.restful;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * easyui datagrid数据格式对象
 * @param <T>
 * @author heyunlin
 * @version 1.0
 */
@Data
public class JsonPage<T> implements Serializable {
    private static final long serialVersionUID = 18L;

    /**
     * 总记录数
     */
    private Long total;

    /**
     * 查询结果
     */
    private List<T> rows;

    /**
     * 页脚数据
     */
    private T footer;

    public static <T> JsonPage<T> restPage(Page<T> page) {
        JsonPage<T> jsonPage = new JsonPage<>();

        jsonPage.setTotal(page.getTotal());
        jsonPage.setRows(page.getRecords());

        return jsonPage;
    }

    public static <T> JsonPage<T> restPage(Long total, List<T> rows) {
        JsonPage<T> jsonPage = new JsonPage<>();

        jsonPage.setTotal(total);
        jsonPage.setRows(rows);

        return jsonPage;
    }

    /**
     * 最初项目的selectByPage()方法的返回值类型为Map<String, Object>
     * @param total 总记录数
     * @param rows 符合条件的记录
     * @return Map<String, Object>
     */
    @Deprecated
    public static Map<String, Object> restPage(long total, Object rows) {
        Map<String, Object> resultMap = new HashMap<>(2);

        resultMap.put("total", total);
        resultMap.put("rows", rows);

        return resultMap;
    }

}
